package fachade;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import vo.EmpresaVO;
import negocio.Carrier;
import negocio.Cliente;
import negocio.Empresa;
import dao.EmpresaDAO;
import dao.LocalidadDAO;
import dao.PaisDAO;
import entity.EmpresaBD;
import entity.LocalidadBD;
import entity.PaisBD;



public class EmpresaFachade {
	
	@SuppressWarnings({ "null", "unchecked" })
	public List<Empresa> getEmpresas(){
		List<Empresa> empresas = new LinkedList<Empresa>();
		
		List<EmpresaBD> empresasDAO = new EmpresaDAO().getEmpresas();
		
		for (Iterator iterator = empresasDAO.iterator(); iterator.hasNext();) {
			EmpresaBD empresaBD = (EmpresaBD) iterator.next();
			
			if ( empresaBD.getTipo_empresa().equalsIgnoreCase("CLIENTE") ){
				empresas.add(new Cliente(empresaBD));
			} else{
				empresas.add(new Carrier(empresaBD));
			}
		}
		return empresas;
	}

	public Empresa getEmpresaByName(String nombre) {
		// TODO Auto-generated method stub
		EmpresaBD empresaBD = new EmpresaDAO().getEmpresaByName(nombre);
		
		if (empresaBD.getTipo_empresa().equalsIgnoreCase("CLIENTE"))
			return new Cliente(empresaBD);
		
		return new Carrier(empresaBD);
	}

	public Empresa getEmpresaById(int idEmpresa) {
		Empresa empresa = null;

		EmpresaBD empresaBD = new EmpresaDAO().getEmpresaById(idEmpresa);
		if ( empresaBD.getTipo_empresa().equalsIgnoreCase("CLIENTE") ){
			empresa = new Cliente(empresaBD);
		} else{
			empresa = new Carrier(empresaBD);
		}
		return empresa;
	}

	public EmpresaBD getEmpresaBDyId(int idEmpresa) {
		return new EmpresaDAO().getEmpresaById(idEmpresa);
	}

	public PaisBD getPaisByID(int idPais) {
		return new PaisDAO().getPaisById(idPais);
	}

	public LocalidadBD getLocalidadByID(int idLocalidad) {
		return new LocalidadDAO().getLocalidadById(idLocalidad);
	}
	
}
